﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Infra.LanguageGenerator
{
    public class Log
    {
        private static string _caminhoArquivo = "";
        private static Log _instance;
        private static object _lock = new object();
        public static Log Instance
        {
            get
            {
                lock (_lock)
                {
                    if (_instance == null)
                        _instance = new Log();

                    return _instance;
                }
            }
        }
        private Log()
        {
            string nomeArquivo = string.Format("log_{0}.txt", DateTime.Now.ToString("ddMMyyyyhhmmss"));
            _caminhoArquivo = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, nomeArquivo);
        }

        public void Escreve(string texto)
        {
            if (string.IsNullOrEmpty(texto))
                throw new ArgumentNullException("Ô gente boa, ai não né...manda o texto pra gente logar...");

            StreamWriter file = null;
            try
            {
                file = new System.IO.StreamWriter(_caminhoArquivo, true);
                string line = string.Format("{0} - {1}", DateTime.Now.ToString("dd/MM/yyyy hh:mm:ss"), texto);
                file.WriteLine(line);
            }
            catch
            {
                if (file != null)
                    file.Close();
            }
            finally
            {
                if (file != null)
                    file.Close();
            }
        }
    }
}
